package com.zimo.download.info.event;

/**
 * 用来添加全局事件监听，并提供了一个事件处理方法。
 * 使用方法:
 * 以为事件是全局的，所以你需要借助Event里的常亮，和你定义的ID来区分
 * ID在一个事件类型里面不允许重复，以为那样会发生覆盖
 * new DownloadImplTest.addEvent(Event.speed(){
 *      @Override
 *      public void handle(EventResponse eventResponse,String threadID,String ID) {
 *          if(ID.equals("ID")){
 *              //事件处理
 *            System.out.println(eventResponse.getSpeed);
 *          }
 *      }
 * },"ID");
 */
public abstract class EventHandlerS<T> implements Event {
    /**
     * 处理监听
     * 下载类通过EventHandler实例调用此方法，以此达到产生事件的效果
     * @param response 通过eventResponse可以看到监听到事件的内容。
     * @param threadID 线程ID，可以通过线程ID来过滤响应
     */
    public abstract void handle(T response,String threadID);
}